#include "ProcessPool.hpp"


void Usage(string proc)
{
    cout << "Usage:" << proc << "->" << "process num" << endl;
}

//我们自己就是master
int main(int argc, char *argv[])
{
    if (argc != 2)
    {
        Usage(argv[0]);
        return UsageError;
    }
    // 创建子进程的个数
    int num = stoi(argv[1]);

    //面向对象
    
    //version 1
    ProcessPool pp(num, Worker);
    // 1.创建进程池,初始化进程池
    pp.InitProcessPool();
    // 2.派发任务(采用轮训的方式)
    pp.DistatchTask();
    // 3. 退出进程池
    pp.CleanProcessPool();

    //version 2

    // ProcessPool *pp = new ProcessPool(num, Worker);
    // // 1.创建进程池,初始化进程池
    // pp->InitProcessPool();
    // // 2.派发任务(采用轮训的方式)
    // pp->DistatchTask();
    // // 3. 退出进程池
    // pp->CleanProcessPool();
     //delete pp;


    // vector<Channel> channels;
    // // 1.创建进程池,初始化进程池
    // InitProcessPool(num, channels, Worker);

    // // DebugPrint(channels);

    // // 2.派发任务(采用轮训的方式)
    // DistatchTask(channels);

    // // 3. 退出进程池
    // CleanProcessPool(channels);

   
   
    return 0;
}